/*
 * GalaxyMap.h
 *
 *  Created on: 2011-5-6
 *      Author: Administrator
 */

#ifndef GALAXYMAP_H_
#define GALAXYMAP_H_

#include <FBase.h>

namespace Galaxy {

class GalaxyDomination;
class Player;
class Planet;

class GalaxyMap {
public:
	GalaxyMap(GalaxyDomination* pGalaxyDomination, Player* pUser, int gameLevel, int aiLevel, int descriptiveId, int* data, int dataLength);
	GalaxyMap(Osp::Base::Collection::ArrayList* pPlayers, Osp::Base::Collection::ArrayList* pPlanets, Osp::Base::String* pHeader);
	virtual ~GalaxyMap();

public:
	static Osp::Base::Collection::ArrayList* CreatePlayers(Player* pUser, int count, int aiBonusStats);
	static Osp::Base::Collection::ArrayList* CreateRandomPlanets(GalaxyDomination* pGalaxyDomination);

public:
	static GalaxyMap* CreateRandomMap(GalaxyDomination* pGalaxyDomination, Player* pUser, int level2v2, bool team2v2);
	static GalaxyMap* CreateRandomGalaxyMap(GalaxyDomination* pGalaxyDomination, Player* pUser, int level);
public:
	//Own
	Osp::Base::String* __pHeader;

	//Own
	Osp::Base::Collection::ArrayList* __pPlayers;

	//Own
	Osp::Base::Collection::ArrayList* __pPlanets;


	static const int __nbLevel;
	static const int __nbLevelDemo;

	static const int __mapWidth;
	static const int __mapHeight;

	static int __screenWidth;
	static int __screenHeight;
	static int __mapToScreenWidth;//For X scale
	static int __mapToScreenHeight;//For Y scale
};

}

#endif /* GALAXYMAP_H_ */
